package InnerClass;

public class AnoymousInnerClassDetail {
    public static void main(String[] args) {
        Outer03 outer03 = new Outer03();
        outer03.f1();
    }
}

class Outer03{
    private int n1 = 99;
    public void f1(){

        //第一种调用方法
        Person p = new Person(){
            @Override
            public void hi() {
                //匿名内部类可以直接访问外部成员属性，包括私有
                System.out.println(n1);
                System.out.println("匿名内部类重写了hi方法");
            }
        };
        p.hi();

        //第二种
        new Person(){
            @Override
            public void hi() {
                System.out.println("匿名内部类重写了hi方法");
            }
        }.hi();//直接调用

    }
}

class Person{
    public void hi(){
        System.out.println("Person的hi方法");
    }
}
